A finite state grammar is used in speaker independent speech recognition applications to map a variety of spoken options (phrases) to a return value. For example, the return value “H P480” corresponding to a model number e.g. for a computer, may be mapped to the following spoken options.
“H P four eighty”;
“four eighty”;
“four eight zero”;
“H P four eight zero”;
“H P forty eight zero”;
“H P four hundred and eighty”; and
“H P four hundred eighty”.
Each of the above spoken options together define a finite state grammar, which can be represented using the following mathematical expression:
[? (H P) [(forty eight zero) (four [(? (hundred ? and) eighty) (eighty zero)])])],
where [ ] is “or”, ( ) is “and”, and ? denotes a zero or one occurrence.
If a spoken option matches a phrase in the finite state grammar, then a speech recognition application (system) using the finite state grammar will recognize the spoken option as the return value associated with the sample phrase. If, however the spoken option does not match a phrase in the finite state grammar, then the speech recognition application/system will not recognize the spoken option.
Thus, it will be appreciated that a finite state grammar used by a speech application should be comprehensive enough to be able to allow the system to map all possible spoken options for a phrase to a return value.
Finite state grammars used by speech recognition applications are generally represented by mathematical expression similar to the one described above. Unfortunately, generating such a mathematical expression for a finite state grammar is beyond the skill of developers who build speech recognition applications.